<?php
ini_set('date.timezone', 'Asia/Shanghai');
error_reporting(E_ERROR);

require_once "../lib/WxPay.Api.php";
require_once '../lib/WxPay.Notify.php';
require_once '../Util/Httpclient.php';
require_once 'log.php';

//初始化日志
$logHandler = new CLogFileHandler("../logs/" . date('Y-m-d') . '.log');
$log = Log::Init($logHandler, 15);

class PayNotifyCallBack extends WxPayNotify
{
    //查询订单
    public function Queryorder($transaction_id)
    {
        $input = new WxPayOrderQuery();
        $input->SetTransaction_id($transaction_id);
        $result = WxPayApi::orderQuery($input);
        Log::DEBUG("query:" . json_encode($result));
        if (array_key_exists("return_code", $result)
            && array_key_exists("result_code", $result)
            && $result["return_code"] == "SUCCESS"
            && $result["result_code"] == "SUCCESS"
        ) {
            return true;
        }
        return false;
    }

    //重写回调处理函数
    public function NotifyProcess($data, &$msg)
    {
        Log::DEBUG("call back:" . json_encode($data));
        $notfiyOutput = array();

        if (!array_key_exists("transaction_id", $data)) {
            $msg = "输入参数不正确";
            return false;
        }
        //查询订单，判断订单真实性
        if (!$this->Queryorder($data["transaction_id"])) {
            $msg = "订单查询失败";
            return false;
        }
        /*本地待定订单纪录,接口调用*/
        $hc = new Httpclient();
        /*访问地址*/
        $url = "http://www.linked-work.com/Interesting/index.php/Trade/Interface_Trade_Pending";
        $send = array('unid'=>$data['attach']);
        $TradeMsg = json_decode($hc->quickPost($url,$send),true);
        $openid = $TradeMsg['belongcode'];

        $url = "http://www.linked-work.com/Interesting/index.php/Trade/Interface_Trade_Finish";
        json_decode($hc->quickPost($url,$send),true);

        //发送支付成功通知
        require_once 'send_message.php';
        /**
         * Created by PhpStorm.
         * User: mao
         * Date: 2016/8/9
         * Time: 16:40
         */

        $total_fee = $data["total_fee"]/100.0;//支付金额
        $time = date("Y-m-d H:i:s"); //支付时间
        $template_id = 'dGwSiSZtjPCrBHGthPuDoD-bOyczOeOcs0wbiItjqG8';//模板id
        $template = array(
            'touser' => $openid,
            'template_id' => $template_id,
            'url' =>'http://www.linked-work.com/wxpay/example/money.html',
            'data' => array(
                'first' => array(
                    'value' => urlencode($TradeMsg['shopname']),
                    'color' => "#173177"
                ),
                'money' => array(
                    'value' => urlencode($total_fee.'元'),
                    'color' => "#173177"
                ),
                'time' => array(
                    'value' => urlencode($time),
                    'color' => "#173177"
                ),
                'remark' => array(
                    'value' => urlencode("有趣支付，为您服务"),
                    'color' => "#173177"
                )
            )

        );
        $weixin_message = new class_weixin();
        $weixin_message->send_template_message(urldecode(json_encode($template)));

        return true;
    }
}

Log::DEBUG("begin notify");
$notify = new PayNotifyCallBack();
$notify->Handle(false);
